#!/bin/sh -e
#
# Runs a previously vetted list of tests, either marked explicitly for
# KVM and x86_64, or tests that are generic enough to be valid for all
# targets. Such a test list can be generated with:
#
# ./tests/venv/bin/avocado list --filter-by-tags-include-empty \
#   --filter-by-tags-include-empty-key -t accel:kvm,arch:x86_64 \
#   tests/avocado/
#
# This is almost the complete list of avocado based tests available at
# the time this was compile, with the following exceptions:
#
# * Require machine type "x-remote":
#   - tests/avocado/multiprocess.py:Multiprocess.test_multiprocess_x86_64
#
# * Requires display type "egl-headless":
#   - tests/avocado/virtio-gpu.py:VirtioGPUx86.test_virtio_vga_virgl
#   - tests/avocado/virtio-gpu.py:VirtioGPUx86.test_vhost_user_vga_virgl
#
#  * Test is marked (unconditionally) to be skipped:
#   - tests/avocado/virtio_check_params.py:VirtioMaxSegSettingsCheck.test_machine_types
#
make get-vm-images
./tests/venv/bin/avocado run \
    --job-results-dir=tests/results/ \
    tests/avocado/boot_linux.py:BootLinuxX8664.test_pc_i440fx_kvm \
    tests/avocado/boot_linux.py:BootLinuxX8664.test_pc_q35_kvm \
    tests/avocado/boot_linux_console.py:BootLinuxConsole.test_x86_64_pc \
    tests/avocado/cpu_queries.py:QueryCPUModelExpansion.test \
    tests/avocado/empty_cpu_model.py:EmptyCPUModel.test \
    tests/avocado/hotplug_cpu.py:HotPlugCPU.test \
    tests/avocado/igb.py:IGB.test \
    tests/avocado/info_usernet.py:InfoUsernet.test_hostfwd \
    tests/avocado/intel_iommu.py:IntelIOMMU.test_intel_iommu \
    tests/avocado/intel_iommu.py:IntelIOMMU.test_intel_iommu_pt \
    tests/avocado/intel_iommu.py:IntelIOMMU.test_intel_iommu_strict \
    tests/avocado/intel_iommu.py:IntelIOMMU.test_intel_iommu_strict_cm \
    tests/avocado/linux_initrd.py:LinuxInitrd.test_with_2gib_file_should_exit_error_msg_with_linux_v3_6 \
    tests/avocado/linux_initrd.py:LinuxInitrd.test_with_2gib_file_should_work_with_linux_v4_16 \
    tests/avocado/migration.py:Migration.test_migration_with_exec \
    tests/avocado/migration.py:Migration.test_migration_with_tcp_localhost \
    tests/avocado/migration.py:Migration.test_migration_with_unix \
    tests/avocado/pc_cpu_hotplug_props.py:OmittedCPUProps.test_no_die_id \
    tests/avocado/replay_kernel.py:ReplayKernelNormal.test_x86_64_pc \
    tests/avocado/reverse_debugging.py:ReverseDebugging_X86_64.test_x86_64_pc \
    tests/avocado/version.py:Version.test_qmp_human_info_version \
    tests/avocado/virtio_version.py:VirtioVersionCheck.test_conventional_devs \
    tests/avocado/virtio_version.py:VirtioVersionCheck.test_modern_only_devs \
    tests/avocado/vnc.py:Vnc.test_change_password \
    tests/avocado/vnc.py:Vnc.test_change_password_requires_a_password \
    tests/avocado/vnc.py:Vnc.test_no_vnc \
    tests/avocado/vnc.py:Vnc.test_no_vnc_change_password \
    tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_4_0 \
    tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_4_1 \
    tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_set_4_0 \
    tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_unset_4_1 \
    tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_v1_4_0 \
    tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_v1_set_4_0 \
    tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_v2_4_0 \
    tests/avocado/x86_cpu_model_versions.py:CascadelakeArchCapabilities.test_v2_unset_4_1 \
    tests/avocado/x86_cpu_model_versions.py:X86CPUModelAliases.test_4_0_alias_compatibility \
    tests/avocado/x86_cpu_model_versions.py:X86CPUModelAliases.test_4_1_alias \
    tests/avocado/x86_cpu_model_versions.py:X86CPUModelAliases.test_none_alias
